import {Dialog, Notify, Toast} from "vant";
import request from "@/utils/request";
import {reactive, ref} from "vue";
import {Local} from "@/utils/storage";
import router from "@/router";

const userInfo = Local.get('userInfo')

export async function edit(AnnForm) {
    // console.log(AnnForm);
    if(AnnForm.privace === true){
        AnnForm.privace = 1;
    }else{
        AnnForm.privace=0;
    }
    // console.log(AnnForm)
    try {
        const res = await request.post('news/add', AnnForm);
        if (res.code === 2000) {
            // Notify({ type: 'success', message: "添加"+res.message });
            Toast.success('添加成功');
            // Optionally handle navigation or other actions here
        } else {
            // Notify({ type: 'danger', message: res.data });
            Toast.fail('添加失败');
        }
        console.log(res.data); // Log response data for debugging
        return res.data; // Return the data you want to retrieve
    } catch (error) {
        console.error('Error in edit function:', error);
        throw error; // Throw error if needed or handle it appropriately
    }
}

export function update(AnnForm) {
    console.log(AnnForm);
    if(AnnForm.privace === true){
        AnnForm.privace = 1;
    }else{
        AnnForm.privace=0;
    }
    console.log(AnnForm)
    Dialog.confirm({
        title: '确认修改',
        message: '是否确定修改？',
        beforeClose: beforeClose, // 使用 beforeClose 拦截操作
    }).then((action) => {
        if (action === 'confirm') {
            // 用户确认删除，执行删除操作
            // 执行删除操作的逻辑，比如请求后端删除接口
            request.post('news/update', AnnForm).then(res => {
                if (res.code === 2000) {
                    // Notify({ type: 'success', message: "修改"+res.message });
                    Toast.success('修改成功');
                    // window.location.reload();
                    // router.push({ name:'finish', params: { title : AnnForm.title,content: AnnForm.content  }});
                }
                else {
                    // Notify({ type: 'danger', message: res.data });
                    Toast.fail('修改失败');
                }
            }).catch(error => {
                return error;
            });
        } else {
            // 用户取消操作，不执行删除操作
            console.log('取消修改');
            // 可以根据需要处理取消删除后的逻辑
        }
    });
}

const beforeClose = (action) =>
    new Promise((resolve) => {
        setTimeout(() => {
            if (action === 'confirm') {
                resolve(true);
            } else {
                // 拦截取消操作
                resolve(false);
                Dialog.close();
            }
        }, 1000);
    });

export function deleteItem (id){
    // 调用 beforeClose 进行确认
    Dialog.confirm({
        title: '确认删除',
        message: '是否确定删除？',
        beforeClose: beforeClose, // 使用 beforeClose 拦截操作
    }).then((action) => {
        if (action === 'confirm') {
            // 用户确认删除，执行删除操作
            // 执行删除操作的逻辑，比如请求后端删除接口
            request.delete(`news/del/${id}`)
                .then(response => {
                    // console.log('删除成功:', response.data);
                    Toast.success('删除成功');
                    // 这里可以根据需要处理删除成功后的逻辑，比如刷新页面或者更新数据列表等
                    window.location.reload();
                })
                .catch(error => {
                    console.error('删除失败:', error);
                    Toast.fail('删除成功');
                    // 可以根据需要处理删除失败后的逻辑，比如显示错误信息给用户
                });
        } else {
            // 用户取消操作，不执行删除操作
            console.log('取消删除');
            // 可以根据需要处理取消删除后的逻辑
        }
    });
}

export function updateStatus(id,status,ok) {
    console.log(status)
    console.log(id)
    request.get(`news/update/status?id=${id}&status=${status}`).then(res => {
        if (res.code === 2000) {
            Notify({ type: 'success', message: res.message });
            if(ok===1){
                Toast.success('更新成功');
                window.location.reload();
            }
            // router.push({ name:'finish', params: { title : AnnForm.title,content: AnnForm.content  }});
        }
        else {
            Notify({ type: 'danger', message: res.data });
        }
    }).catch(error => {
        return error;
    });
}

export function add(AnnForm) {
    console.log(AnnForm)
    request.post('activity/add', AnnForm).then(res => {
        if (res.code === 2000) {
            // Notify({ type: 'success', message: "添加"+res.message });
            Toast.success('添加成功');
            // Optionally handle navigation or other actions here
        } else {
            // Notify({ type: 'danger', message: res.data });
            Toast.fail('添加失败');
        }
        console.log(res.data); // Log response data for debugging
    })
    .catch(error => {
        console.error('添加失败:', error);
        // 可以根据需要处理删除失败后的逻辑，比如显示错误信息给用户
    });
}

export function deleteActivity (id){
    // 调用 beforeClose 进行确认
    Dialog.confirm({
        title: '确认删除',
        message: '是否确定删除？',
        beforeClose: beforeClose, // 使用 beforeClose 拦截操作
    }).then((action) => {
        if (action === 'confirm') {
            // 用户确认删除，执行删除操作
            // 执行删除操作的逻辑，比如请求后端删除接口
            request.delete(`activity/del/${id}`)
                .then(res => {
                    if (res.code === 2000) {
                        // Notify({ type: 'success', message: "删除"+res.message });
                        Toast.success('删除成功');
                        window.location.reload();
                        // router.push({ name:'finish', params: { title : AnnForm.title,content: AnnForm.content  }});
                    }
                    else {
                        // Notify({ type: 'danger', message: res.data });
                        Toast.fail('删除失败');
                    }
                })
                .catch(error => {
                    console.error('删除失败:', error);
                    // 可以根据需要处理删除失败后的逻辑，比如显示错误信息给用户
                });
        } else {
            // 用户取消操作，不执行删除操作
            console.log('取消删除');
            // 可以根据需要处理取消删除后的逻辑
        }
    });
}

export function modifyActivity (AnnForm){
    // 调用 beforeClose 进行确认
    Dialog.confirm({
        title: '确认修改',
        message: '是否确定修改？',
        beforeClose: beforeClose, // 使用 beforeClose 拦截操作
    }).then((action) => {
        if (action === 'confirm') {
            // 用户确认删除，执行删除操作
            // 执行删除操作的逻辑，比如请求后端删除接口
            request.post('activity/update', AnnForm)
                .then(res => {
                    if (res.code === 2000) {
                        // Notify({ type: 'success', message: "修改"+res.message });
                        Toast.success('修改成功');
                        // window.location.reload();
                        // router.push({ name:'finish', params: { title : AnnForm.title,content: AnnForm.content  }});
                    }
                    else {
                        // Notify({ type: 'danger', message: res.data });
                        Toast.fail('修改失败');
                    }
                })
                .catch(error => {
                    console.error('修改失败:', error);
                    // 可以根据需要处理删除失败后的逻辑，比如显示错误信息给用户
                });
        } else {
            // 用户取消操作，不执行删除操作
            console.log('取消修改');
            // 可以根据需要处理取消删除后的逻辑
        }
    });
}
